#include<bits/stdc++.h>
#define fo(i,a,b) for(int i=a;i<=b;i++)
#define read(x) scanf("%d",&x)
typedef long long ll;
typedef double dl;
using namespace std;

const int N=2e5+7;
const int M=1e9+7;
const int INF=0x3f3f3f3f;

int n,m;

vector<int> G[N];
int h[N];

bool check(int x){
	for(auto i:G[x]){
		if (h[i]>=h[x]) return 0;
	}
	return 1;
}

int u,v;

void solve(){
	cin>>n>>m;
	fo(i,1,n) cin>>h[i];
	fo(i,1,m){
		cin>>u>>v;
		G[u].push_back(v);
		G[v].push_back(u);
	}
	int ans=0;
	fo(i,1,n){
		ans+=check(i);
	}
	cout<<ans;
}

int main(){
//	ios::sync_with_stdio(0);
//  cin.tie(0),cout.tie(0);
//	int T;read(T);
//	for(int i=1;i<=T;i++)
		solve();
}

